package com.dhcc.bpm.modules.api.service;

import com.dhcc.bpm.modules.api.entity.BaseProduct;
import com.dhcc.bpm.modules.api.vo.BaseProductVO;
import com.dhcc.bpm.modules.common.vo.SelectVo;
import org.springblade.core.mp.base.BaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * @ClassName IBaseProductService
 * @Description 基础产品表 服务类
 * @Author daina
 * @Date 2020/2/25 15:22
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
public interface IBaseProductService extends BaseService<BaseProduct> {

	/**
	 * @Description 自定义分页
	 * @Author daina
	 * @Date 15:54 2020/2/25
	 * @param page
	 * @param baseProduct
	 * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.api.vo.BaseProductVO>
	 **/
	IPage<BaseProductVO> selectBaseProductPage(IPage<BaseProductVO> page, BaseProductVO baseProduct);
	IPage<BaseProductVO> selectBProductList(IPage<BaseProductVO> page, BaseProductVO baseProduct);
	/**
	 * @Description 查询基础产品
	 * @Author daina
	 * @Date 15:54 2020/2/25
	 * @param
	 * @return java.util.List<com.dhcc.bpm.modules.common.vo.SelectVo>
	 **/
	List<SelectVo> selectBaseProductName();
	/**
	 * @Description 查询编码是否重复
	 * @Author xiafayu
	 * @Date 2020/3/21 20:32
	 * @param productNum
	 * @return java.util.List<com.dhcc.bpm.modules.api.vo.BaseProductVO>
	 * @throws
	 **/
	List<BaseProductVO> selectBySysNum(String productNum);

	/**
	 * @Description 根据所属id查询集合
	 * @Author sjm
	 * @Date 17:59 2020/3/28 0028
	 * @param opcSysId
	 * @return java.util.List<com.dhcc.bpm.modules.api.entity.BaseProduct>
	 **/
    List<BaseProduct> selectBySysId(Long opcSysId);

	/**
	 * @Description 根据所属id查询集合
	 * @Author wjh
	 * @Date 2020年7月1日09:23:40
	 * @param id
	 * @return java.util.List<com.dhcc.bpm.modules.api.entity.BaseProduct>
	 **/
    List<BaseProduct> selectById(Long id);

	/**
	 * @Description 根据所属id查询集合
	 * @Author wjh
	 * @Date 2020年9月4日10:35:27
	 * @param id
	 **/
	List<BaseProductVO> selectBackById(Long id);
	/**
	 * 修改基础产品
	 *
	 * @param baseProduct 基础产品信息
	 * @return 结果
	 */
	public int updateOpcBaseProduct(BaseProductVO baseProduct);

	public List<BaseProductVO> selectBaseProductList();

	IPage<BaseProductVO> selectThirdBaseProductPage(IPage<BaseProductVO> page, BaseProductVO baseProduct);
}
